﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CompanyBussiness;

namespace Website.admin.Control
{
    public partial class cUserAddNew : System.Web.UI.UserControl
    {
        AccountManagement accountMana = new AccountManagement();
        MD5 md5 = new MD5();
        string strLogDetail = "";
        CheckValid cv = new CheckValid();
        CompanyBussiness.Account account = new Account();
        CompanyBussiness.AccountLog accountLog = new AccountLog();
        CompanyBussiness.InternalUser internerUser=new InternalUser();
        Modul modul;
        string ipaddress;
        string pass="";
        string confirm = "";
        string userName="";
        string fullName="";
        string email="";
        string address="";
        string phone="";

        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected bool GetData()
        {
            if (txtUserName.Text.Trim() != "")
            {
                userName = txtUserName.Text;
            }
            else
            {
                lbError.Text = "Bạn chưa nhập tên đăng nhập !";
                return false;
            }

            if (txtPassword.Text.Trim() != "")
            {

                pass = txtPassword.Text;

            }
            else
            {
                lbError.Text = "Bạn chưa nhập mật khẩu !";
                return false;
            }

            if (txtConfirm.Text.Trim() == "" || txtConfirm.Text==string.Empty)
            {
                lbError.Text = "Bạn chưa xác nhận mật khẩu !";
                return false;
            }

            if (txtPassword.Text.Equals(txtConfirm.Text)==false)
            {
                lbError.Text = "Mật khẩu của bạn phải xác nhận lại !";
                return false;
            }

            if (txtEmail.Text == "" || txtEmail.Text==string.Empty)
            {
                lbError.Text = "Bạn chưa nhập thư điện tử !";
                return false;
            }
            else
            {
                if (cv.CheckEmail(txtEmail.Text))
                {
                    if (accountMana.CheckEmail(txtEmail.Text) == 0)
                    {
                        email = txtEmail.Text;
                    }
                    else
                    {
                        lbError.Text = "Địa chỉ thư điện tử này đã được dùng !";
                        return false;
                    }
                }
                else
                {
                    lbError.Text = "Địa chỉ thư điện tử của bạn không đúng định dạng !";
                    return false;
                }
            }

            if (txtPhone.Text != "" || txtPhone.Text != string.Empty)
            {
                if (cv.CheckNumber(txtPhone.Text))
                {
                    phone = txtPhone.Text;
                }
                else
                {
                    lbError.Text = "Số điện thoại của bạn không đúng định dạng !";
                    return false;
                }
            }
            

            return true;
        }

        protected void btnRegister_Click(object sender, EventArgs e)
        {
            try
            {
                if (GetData() == false)
                    return;

                if (accountMana.GetAccountByUserName(txtUserName.Text) == null)
                {
                    pass=txtPassword.Text;
                    account.UserName = userName;
                    account.Password = md5.EnMD5(pass);
                    account.Email = email;
                    account.Roles = true;
                    account.AccountStatus = true;
                    account.Date = DateTime.Now;

                   // accountMana.CreateUser(userName, md5.EnMD5(pass), "", "", email, "", "", "", true, "");
                   int idOut= accountMana.CreateAccount(account);

                    internerUser.AccountID = idOut;
                    internerUser.FullName = fullName;
                    internerUser.Email = email;
                    internerUser.Phone = phone;
                    internerUser.Address = address;

                    accountMana.CreateInternalUser(internerUser);

                    //Phân quyền mặc định
                    internerUser=new InternalUser();
                    internerUser=accountMana.GetInternalByUserName(txtUserName.Text);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MNEWS");
                    accountMana.SetPermission(internerUser, modul);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MSHAREHOLDERS");
                    accountMana.SetPermission(internerUser, modul);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MJOB");
                    accountMana.SetPermission(internerUser, modul);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MHELP");
                    accountMana.SetPermission(internerUser, modul);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MCONTACT");
                    accountMana.SetPermission(internerUser, modul);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MINTRO");
                    accountMana.SetPermission(internerUser, modul);

                    modul = new Modul();
                    modul = accountMana.GetModulByModulCode("MPRODUCT");
                    accountMana.SetPermission(internerUser, modul);

                    Response.Cookies[CONST.ACTION][CONST.COOKIES_ACTION_NAME] = "AccountMana";
                    Response.Redirect("Administrator.aspx?" + CONST.ACTION + "=AccountMana&Mod=" + "MACCOUNT");
                }
                else
                {
                    lbError.Text = "Tên đăng nhập đã được sử dụng";
                    return;
                }
            }
            catch(Exception)
            {
                    
            }
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            Response.Cookies[CONST.ACTION][CONST.COOKIES_ACTION_NAME] = "AccountMana";
            Response.Redirect("Administrator.aspx?" + CONST.ACTION + "=AccountMana&Mod=" + "MACCOUNT");
        }
    }
}